The present invention relates in general to the field of public networks and network communication and, more particularly, to a system and method for maintaining states for user sessions with a web system.
For many business enterprises, it has become important to reach customers, vendors and employees through the Internet or other public network. Consequently, there is a large and growing number of web-based site development and management tools available to enterprises that want to create or improve a presence on the Internet. However, a number of problems are recurrent in such web development efforts and not adequately addressed by conventional web site development and management tools.
Web-based communication is different from mainframe and client-server arenas where many information services (IS) departments have most of their expertise. One difference is that HTTP, an underlying protocol of web communication, is both connectionless and stateless. This causes a problem for dynamic interactions with the user where a web system needs to be able to keep track of the user""s state during a session involving multiple web interactions (e.g., web page requests). Without a way to manage state, between web transactions the system will have xe2x80x9cforgottenxe2x80x9d information about the user and the context of the session. This can be further complicated by the fact that in many large web systems the user does not interact with the same web server from transaction to transaction.
In accordance with the present invention, a system and method for maintaining states for user sessions with a web system are disclosed that provide significant advantages over conventional web-based system development and management tools.
According to one aspect of the present invention, maintaining state includes receiving a request from a user that initiates a user session with the web system and processing the request to provide a web page to the user. Session data representing a state of the user session is stored in memory in a global session server. Then, for each subsequent request associated with the user session, the subsequent request is received, and the session data is retrieved from the global session server. The subsequent request is then processed using the session data to provide a web page to the user, and the session data is changed to reflect the processing. The session data is again updated in the global session server. The global session server thereby stores session data unique to each user session accumulated over multiple web transactions. In one implementation, the session data includes name/value pairs where the values can be self describing objects such as text, numbers, arrays, and interfaces to other objects.
A technical advantage of the use of the global session server is that it allows a web system engine to remain stateless with respect to an ongoing user interaction with the web system. This ability to remain stateless frees web system engine to effectively manage server load balancing and other speed issues. Further, by separating the state information from important enterprise data (which can be stored in secure databases), the global session server allows the web system engine to more quickly associate a state with a particular user request that reflects the history of the current user session.
Other technical advantages should be readily apparent to one skilled in the art from the following figures, description, and claims.